﻿using BusinessLogicLayer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PresentationLayer
{
    public partial class CapNhatThongTinNXBForm : Form
    {
        public CapNhatNXB PhuongThucCapNhatNXB { get; set; }
        public NXB nxb;
        public string MaNXB { get; set; }
        public CapNhatThongTinNXBForm()
        {
            InitializeComponent();
        }

        private void btnThemNXB_Click(object sender, EventArgs e)
        {
            String ma = txtMaNXB.Text;
            String ten = txtTenNXB.Text;
            String mota = txtMoTa.Text;
            NXB nxb = new NXB(ma, ten, mota);
            NXBManager manager = new NXBManager();
            ValidateResult vr1 = manager.KiemTraHopLe(nxb);
            if (vr1.Valid)
            {
                ValidateResult vr = manager.KiemTraTrungMa(ma);
                if (vr.Valid)
                {
                    if (MessageBox.Show(String.Format("Bạn muốn thêm NXB có mã: {0}?", ma), "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        ActionResult ar = new ActionResult();
                        ar = manager.ThemNXB(ref nxb);
                        if (ar.Success)
                        {
                            if (PhuongThucCapNhatNXB != null)
                                PhuongThucCapNhatNXB(LoaiHanhDong.Them, nxb);
                            MessageBox.Show("Thêm thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                            MessageBox.Show("Thêm thất bại!\n\nChi tiết: " + ar.Exceptions[ar.Exceptions.Count - 1].Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }
                }
                else
                    MessageBox.Show(vr.ToString());
            }
            else
                MessageBox.Show(vr1.ToString());
        }

        private void CapNhatThongTinNXBForm_Load(object sender, EventArgs e)
        {
            if (MaNXB != "")
            {
                txtMaNXB.ReadOnly = true;
                btnThemNXB.Visible = false;
                var rs = new NXBManager().TimKiemNXBTheoMa(MaNXB);
                nxb = rs.ObjectList[0];
                txtMaNXB.Text = nxb.MaNXB;
                txtTenNXB.Text = nxb.TenNXB;
                txtMoTa.Text = nxb.MoTa;
            }
            else
            {
                btnCapNhatNXB.Visible = false;
            }
        }

        private void btnCapNhatNXB_Click(object sender, EventArgs e)
        {
            string manxb = txtMaNXB.Text;
            string tennxb = txtTenNXB.Text;
            string mota = txtMoTa.Text;
            if (MessageBox.Show(String.Format("Bạn muốn cập nhật thông tin thể loại có mã thể loại {0}?", manxb), "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                NXB nxb = new NXB(manxb, tennxb, mota);
                ActionResult ar = new NXBManager().SuaNXB(nxb);
                if (ar.Success)
                {
                    if (PhuongThucCapNhatNXB != null)
                        PhuongThucCapNhatNXB(LoaiHanhDong.CapNhat, nxb);
                    MessageBox.Show("Cập nhật thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                    MessageBox.Show("Cập nhật thất bại!\n\nChi tiết: " + ar.Exceptions[ar.Exceptions.Count - 1].Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
